-
Notifications
You must be signed in to change notification settings - Fork 11
/
files-over-time.pl
257 lines (244 loc) · 4.86 KB
/
files-over-time.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
#!/usr/bin/perl
require "./stats/tag2date.pm";
sub num {
my ($t)=@_;
if($t =~ /^curl-(\d)_(\d+)_(\d+)/) {
return 10000*$1 + 100*$2 + $3;
}
elsif($t =~ /^curl-(\d)_(\d+)/) {
return 10000*$1 + 100*$2;
}
}
sub sortthem {
return num($a) <=> num($b);
}
@alltags= `git tag -l`;
foreach my $t (@alltags) {
chomp $t;
if($t =~ /^curl-([0-9_]*[0-9])\z/) {
push @releases, $t;
}
}
sub filecount {
my ($tag, $pref)=@_;
my $count;
open(G, "git ls-tree -r --name-only $tag -- $pref 2>/dev/null|");
my @file=<G>;
close(G);
return scalar(@file);
}
my @this = sort sortthem @releases;
my $now = `git describe`;
chomp $now;
# top off with the current state
push @this, $now;
print <<CACHE
2000-03-14;110;110
2000-03-21;111;111
2000-03-21;111;111
2000-08-21;136;136
2000-08-30;137;137
2000-09-28;143;143
2000-10-16;150;150
2000-12-04;350;156
2001-01-05;357;163
2001-01-27;377;162
2001-02-13;403;162
2001-03-22;456;187
2001-04-04;458;189
2001-04-23;471;202
2001-05-07;490;204
2001-06-07;241;212
2001-08-20;271;219
2001-09-25;311;236
2001-11-04;293;205
2001-12-05;305;215
2002-01-23;319;228
2002-02-05;318;227
2002-03-07;337;239
2002-04-15;349;247
2002-05-13;351;249
2002-06-13;357;249
2002-10-01;391;277
2002-10-11;395;277
2002-11-18;399;278
2003-01-14;412;275
2003-04-02;418;276
2003-05-19;425;273
2003-07-28;455;289
2003-08-15;482;295
2003-11-01;572;376
2004-01-22;595;393
2004-03-18;621;414
2004-04-26;649;424
2004-06-02;675;442
2004-08-10;690;447
2004-10-18;700;445
2004-12-20;744;452
2005-02-01;761;458
2005-03-04;763;457
2005-04-05;775;457
2005-05-16;812;471
2005-09-01;828;476
2005-10-13;834;478
2005-12-06;839;480
2006-02-27;852;492
2006-03-20;858;496
2006-06-12;872;508
2006-08-07;882;517
2006-10-29;905;522
2007-01-29;919;524
2007-04-11;949;530
2007-06-25;976;528
2007-07-10;977;529
2007-09-13;1010;546
2007-10-29;1031;549
2008-01-28;1057;552
2008-03-30;1075;557
2008-06-04;1107;574
2008-09-01;1172;586
2008-11-05;1207;603
2008-11-13;1210;603
2009-01-19;1214;603
2009-03-02;1229;611
2009-05-18;1273;640
2009-08-12;1322;654
2009-11-04;1340;665
2010-02-09;1387;686
2010-04-14;1230;526
2010-06-16;1269;543
2010-08-11;1279;550
2010-10-12;1292;553
2010-12-15;1299;555
2011-02-17;1333;564
2011-04-17;1349;569
2011-04-22;1355;571
2011-06-23;1368;574
2011-09-13;1388;584
2011-11-14;1467;645
2011-11-17;1467;645
2012-01-24;1499;652
2012-03-22;1510;650
2012-05-24;1513;647
2012-07-27;1607;659
2012-10-10;1625;662
2012-11-20;1636;665
2013-02-06;1653;670
2013-04-12;1713;693
2013-06-22;1736;695
2013-08-11;1777;728
2013-10-13;1805;732
2013-12-16;1857;736
2014-01-29;1896;760
2014-03-26;1907;762
2014-05-20;1966;802
2014-07-16;2179;1015
2014-09-10;2180;1015
2014-11-05;2208;1029
2015-01-07;2228;1035
2015-02-25;2250;1039
2015-04-22;2259;1046
2015-04-28;2260;1046
2015-06-17;2249;1028
2015-08-11;2270;1044
2015-10-07;2319;1091
2015-12-01;2344;1098
2016-01-27;2349;1100
2016-02-08;2351;1100
2016-03-23;2367;1113
2016-05-17;2390;1124
2016-05-30;2392;1126
2016-07-21;2403;1128
2016-08-03;2403;1128
2016-09-07;2405;1128
2016-09-14;2408;1129
2016-11-02;2414;1129
2016-12-20;2661;1363
2016-12-22;2661;1363
2017-02-22;2681;1360
2017-02-24;2681;1360
2017-04-19;2705;1372
2017-06-14;2720;1372
2017-08-09;2768;1380
2017-08-13;2772;1382
2017-10-04;2841;1404
2017-10-23;2829;1404
2017-11-29;2862;1410
2018-01-23;2889;1425
2018-03-13;2923;1441
2018-05-15;2957;1447
2018-07-11;2984;1465
2018-09-04;2994;1466
2018-10-30;3024;1485
2018-12-12;3019;1466
2019-02-06;3035;1466
2019-03-27;3054;1474
2019-05-22;3064;1476
2019-06-04;3066;1477
2019-07-17;3077;1478
2019-07-19;3077;1478
2019-09-10;3124;1510
2019-11-05;3143;1517
2020-01-08;3172;1530
2020-03-04;3214;1536
2020-03-11;3228;1536
2020-04-29;3245;1542
2020-06-23;3278;1562
2020-06-30;3285;1564
2020-08-19;3300;1570
2020-10-14;3312;1566
2020-12-09;3324;1578
2021-02-03;3358;1587
2021-03-31;3383;1598
2021-04-14;3385;1598
2021-05-26;3411;1616
2021-07-21;3409;1620
2021-09-14;3422;1621
2021-09-22;3424;1621
2021-11-10;3456;1629
2022-01-05;3479;1638
2022-03-05;3446;1595
2022-04-27;3487;1611
2022-05-11;3494;1612
2022-06-27;3524;1623
2022-08-31;3536;1626
2022-10-26;3565;1632
2022-12-21;3612;1633
2023-02-15;3656;1634
2023-02-20;3656;1634
2023-03-20;3686;1633
2023-03-20;3686;1633
2023-05-17;3736;1654
2023-05-23;3736;1654
2023-05-30;3737;1654
2023-07-19;3766;1675
2023-07-26;3767;1675
2023-09-13;3798;1676
2023-10-11;3819;1684
2023-12-06;3864;1707
2024-01-31;3909;1746
2024-03-27;3936;1757
2024-03-27;3936;1757
2024-05-22;3940;1732
CACHE
;
foreach my $t (@this) {
if(($t !~ /g/) && (num($t) <= 80800)) {
next;
}
my $c = filecount($t);
my $testsonly = filecount($t, "tests");
if($c) {
# prettify
my $d;
my $d = tag2date($t);
if($t ne $now) {
$t =~ s/_/./g;
$t =~ s/-/ /g;
}
else {
$t = "now";
}
printf "$d;$c;%u\n", $c-$testsonly;
}
}